package com.example.dao;

import com.example.model.User;

/**
 * 用户数据访问对象接口
 * 定义数据访问的契约，便于解耦和测试
 */
public interface UserDao {

    /**
     * 根据用户名查找用户
     * 
     * @param username 用户名
     * @return 用户对象，如果不存在返回null
     */
    User findByUsername(String username);

    /**
     * 保存用户
     * 
     * @param user 用户对象
     */
    void saveUser(User user);

    /**
     * 根据ID查找用户
     * 
     * @param id 用户ID
     * @return 用户对象，如果不存在返回null
     */
    User findById(int id);

    /**
     * 更新用户信息
     * 
     * @param user 用户对象
     */
    void updateUser(User user);

    /**
     * 删除用户
     * 
     * @param id 用户ID
     */
    void deleteUser(int id);
}